#! /usr/bin/env python
# -*- coding:utf-8 -*-
# @Time : 2020/10/21 23:09
# @Author : youngchaolin

'''
datetime:日期时间模块
封装了一些和日期、时间相关的类
date、time、timedelta
'''

# 引入datetime模块
import datetime

# date类
d=datetime.date(2010,10,10)
print(d)
# 获取date对象的各个属性
print(d.year)
print(d.month)
print(d.day)

# time类
t=datetime.time(20,56,59)
print(t)

# time对象的属性
print(t.hour)
print(t.minute)
print(t.second)

# datetime类
dt=datetime.datetime(2010,10,10,20,56,59)
print(dt)

# datetime模块中的类，主要用于数学计算

#timedelta：时间变化量，常用天和时
td=datetime.timedelta(days=1,hours=1)
print(td)

# date,datetime,timedelta都可以计算时间变化量，只有这三类可以计算时间变化量
d=datetime.date(2020,11,11)
new_d=d+td
print(new_d)
# 计算完后，和原始类型一致
print(type(new_d)) # <class 'datetime.date'>

dt=datetime.datetime(2020,11,11,20,20,20)
print(dt)
new_dt=dt+td
print(new_dt)
print(type(new_dt)) # <class 'datetime.datetime'>

td1=datetime.timedelta(days=2,hours=1)
new_dt=td1-td
print(new_dt)
print(type(new_dt)) # <class 'datetime.timedelta'>

# 时间变化量的计算，是否会影响上一级,答案是肯定的
t=datetime.datetime(2020,11,11,10,10,59)
print(t)
td=datetime.timedelta(seconds=2)
new_t=t+td
print(new_t)

# 练习
# 计算某一年二月份有多少天
# 1 常规方法，判断某一年是否是闰年，是就是29天，否就是28天
year=input("请输入年份")
year=int(year)
# print(year)

if (year%4==0 and year%100!=0) or year%400==0:
    print('2月29天')
else:
    print('2月28天')

# 用datetime模块,用某一年的3月1号减去1天
print('-----使用datetime-----')
d=datetime.date(year,3,1)
dt=datetime.timedelta(days=1)
res=d-dt
print(f'2月{res.day}天')



